﻿using System;
using System.Collections.Generic;

namespace Bpms.Entity
{
    /// <summary>
    /// 用户实体类
    /// </summary>
    public class UserInfo
    {
        /* 基本信息 */
        private int _userId;                            // 标识ID（用户ID）
        private string _email = string.Empty;           // 邮箱
        private int _organizationId = 0;                // 所属团队ID
        private int _jobTitleId = 0;                    // 职位ID
        private string _chName = string.Empty;          // 中文名
        private string _enName = string.Empty;          // 英文名
        private byte _gender = 1;                       // 性别(1：男，2：女)
        private string _extension = string.Empty;       // 分机
        private string _mobile = string.Empty;          // 手机
        private string _remark = string.Empty;          // 备注

        /* 扩展信息 */
        private string _password = string.Empty;        // 密码
        private byte _isEnabled = 1;                    // 用户状态 （0：注销，1：启动）
        private bool _isDelete = false;                 // 是否删除（false：未删除，true：已删除）
        private int _roleId = 0;                        // 角色ID
        private DateTime _lastLoginTime = new DateTime(1970,1,1);                // 最后登录时间
        private string _lastLoginIP = string.Empty;     // 最后登录IP
        private byte _interval = 5;                     // 接收消息的时间间隔（默认5分钟）

        /* 共他信息 */
        private IList<CustomerInfo> _user_customers;     // 为该用户分配的客户

        /* 基本信息属性 */

        /// <summary>
        /// 用户的UserID
        /// </summary>
        public int UserID
        {
            get
            {
                return _userId;
            }
            set
            {
                _userId = value;
            }
        }

        /// <summary>
        /// E-mail
        /// </summary>
        public string Email
        {
            get
            {
                return _email;
            }
            set
            {
                _email = value;
            }
        }

        /// <summary>
        /// 所属团队ID
        /// </summary>
        public int OrganizationID
        {
            get
            {
                return _organizationId;
            }
            set
            {
                _organizationId = value;
            }
        }
        /// <summary>
        /// 职位名称
        /// </summary>
        public int JobTitleID
        {
            get
            {
                return _jobTitleId;
            }
            set
            {
                _jobTitleId = value;
            }
        }

        /// <summary>
        /// 中文名
        /// </summary>
        public string ChName
        {
            get
            {
                return _chName;
            }
            set
            {
                _chName = value;
            }
        }

        /// <summary>
        /// 英文名
        /// </summary>
        public string EnName
        {
            get
            {
                return _enName;
            }
            set
            {
                _enName = value;
            }
        }

        /// <summary>
        /// 性别(1：男，2：女)
        /// </summary>
        public byte Gender
        {
            get
            {
                return _gender;
            }
            set
            {
                _gender = value;
            }
        }

        /// <summary>
        /// 分机
        /// </summary>
        public string Extension
        {
            get
            {
                return _extension;
            }
            set
            {
                _extension = value;
            }
        }

        /// <summary>
        /// 手机
        /// </summary>
        public string Mobile
        {
            get
            {
                return _mobile;
            }
            set
            {
                _mobile = value;
            }
        }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remark
        {
            get
            {
                return _remark;
            }
            set
            {
                _remark = value;
            }
        }

        /* 扩展信息属性 */

        /// <summary>
        /// 密码
        /// </summary>
        public string Password
        {
            get
            {
                return _password;
            }
            set
            {
                _password = value;
            }
        }

        /// <summary>
        /// 状态 （1：启动，0：注销）
        /// </summary>
        public byte IsEnabled
        {
            get
            {
                return _isEnabled;
            }
            set
            {
                _isEnabled = value;
            }
        }

        /// <summary>
        /// 是否删除（false：未删除，true：已删除）
        /// </summary>
        public bool IsDelete
        {
            get
            {
                return _isDelete;
            }
            set
            {
                _isDelete = value;
            }
        }

        /// <summary>
        /// 角色ID
        /// </summary>
        public int RoleID
        {
            get
            {
                return _roleId;
            }
            set
            {
                _roleId = value;
            }
        }

        /// <summary>
        /// 最后登录时间
        /// </summary>
        public DateTime LastLoginTime
        {
            get
            {
                return _lastLoginTime;
            }
            set
            {
                _lastLoginTime = value;
            }
        }

        /// <summary>
        /// 最后登录IP
        /// </summary>
        public string LastLoginIP
        {
            get
            {
                return _lastLoginIP;
            }
            set
            {
                _lastLoginIP = value;
            }
        }

        /// <summary>
        /// 接收消息的时间间隔（默认5分钟）
        /// </summary>
        public byte Interval
        {
            get
            {
                return _interval;
            }
            set
            {
                _interval = value;
            }
        }

        /* 其他信息 */

        /// <summary>
        /// 为该用户分配的客户
        /// </summary>
        public IList<CustomerInfo> UserCustomers
        {
            get
            {
                return _user_customers;
            }
            set
            {
                _user_customers = value;
            }
        }
    }
}
